package com.tedu.api.date;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

import java.util.Calendar;
import java.util.Date;

/**
 * java.util包
 * Calendar抽象类替换Date  【设计缺陷】
 * 替换方法:
 * 1.时间计算分量:根据毫秒数换算时间分量:年，月，日 时分秒
 * 2.设计时间分量  修改  年  月  日  时分秒  底层用毫秒进行计算结果
 * 3增加/减少时间分量  增加/减少指定毫秒数
 */
public class CalendarAPI {
    public static void main(String[] args) {
        //抽象类---匿名内部类【提供静态方法替代new  这个静态方法封装new功能】
        //getInstance  获取一个实例---封装new的功能
        Calendar cl = Calendar.getInstance();
        //获取年月日   get方法:获取年月日  时分秒
        int year = cl.get(Calendar.YEAR);//get方法中传入  静态属性
        int month = cl.get(Calendar.MONTH);
        int day = cl.get(Calendar.DAY_OF_MONTH);
        int hour = cl.get(Calendar.HOUR);
        int min = cl.get(Calendar.MINUTE);
        int sec = cl.get(Calendar.SECOND);
        System.out.println("时" + hour + "分" + min + "秒" + sec);
        System.out.println("当前年份" + year + "月" + month + "日" + day);
        //设置时间分量  :set（修改时间，绝对时间）方法   底层使用毫秒数
        //需求:当前时间调整为明年的今天
        cl.set(Calendar.YEAR, 2025);
        Date d = cl.getTime();//获取时间  返回值Date类
        System.out.println("明年的今天" + d);
        //需求:获取2023年的今天【通过第三个增加或减少毫秒数来实现】
        //set方法(改变时间，相对时间)
        cl.add(Calendar.YEAR, -1);
        d = cl.getTime();
        System.out.println("去年的今天" + d);
        //获取当前月份的总天数【最大的天数】
        int max = cl.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("月份最大天数" + max);
    }
}